package com.cup.common.mail;

import java.util.List;
import java.util.Properties;

import com.sun.mail.util.MailSSLSocketFactory;

import lombok.Data;

/**
 * 	邮件发送配置参数信息
 */
@Data
public class MailSenderInfo {
    // 发送邮件的服务器的IP
    private String mailServerHost;
    //发送邮件的服务器端口，该处暂时默认25
    private String mailServerPort = "25";
    // 邮件发送者的地址
    private String fromAddress;
    // 邮件接收者的地址
    private String toAddress;
    //邮件接收者的地址集合
    private String[] toBatchAddress;
    // 登陆邮件发送服务器的用户名
    private String userName;
    //登陆邮件发送服务器的密码
    private String password;
    // 是否需要身份验证 [默认false不认证]
    private boolean validate = false;
    // 邮件主题
    private String subject;
    // 邮件主题
    private String[] subjects;
    // 邮件的文本内容
    private String content;
    // 邮件的文本内容
    private String[] contents;
    // 邮件附件的文件名
    private String[] attachFileNames;
    // 邮件附件的文件名 针对一邮件带多个附件关系
    private List<String[]> attachFileList;

    /**
     * 获得邮件会话属性
     */
    public Properties getProperties() {
        Properties p = new Properties();
        try {
            p.put("mail.smtp.host", this.mailServerHost);
            p.put("mail.smtp.port", this.mailServerPort);
            p.put("mail.smtp.auth", validate ? "true" : "false");
            p.setProperty("mail.transport.protocol", "smtp");
            if("smtp.qq.com".equals(this.mailServerHost)) {
                MailSSLSocketFactory sf = new MailSSLSocketFactory();
                sf.setTrustAllHosts(true);
                p.put("mail.smtp.ssl.enable", "true");
                p.put("mail.smtp.ssl.socketFactory", sf);
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
        return p;
    }
}